package modelUtils;

import java.io.IOException;

import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.NullCacheStorage;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;

/**
 * FreeMarkerTemplateUtils工具类用来配置模板所在的路径，用来获取freemarker模板 单例模式
 * @ClassName:  FreeMarkerTemplateUtils   
 * @Description:TODO   
 * @author: zhangxz 
 * @date:   2018年8月18日 下午9:43:07   
 *     
 * @Copyright: 2018 www.zxz1990.xin Inc. All rights reserved. 
 * 注意：9091优惠券
 */
public class FreeMarkerTemplateUtils {

	private FreeMarkerTemplateUtils(){}
	// 获取配置属性
	private static final Configuration CONFIGURATION = new Configuration(Configuration.VERSION_2_3_23);
	
	// 设置freemarker模板路径
	static{
		// 设置模板根路径
		CONFIGURATION.setTemplateLoader(new ClassTemplateLoader(FreeMarkerTemplateUtils.class, "templates"));
		// 设置默认编码格式
		CONFIGURATION.setDefaultEncoding("UTF-8");
		// 设置freemarker异常机制为 抛出异常
		CONFIGURATION.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
		// 设置不使用缓存
		CONFIGURATION.setCacheStorage(NullCacheStorage.INSTANCE);
	}
	// 根据模板名称获取模板信息
	public static Template getTemplate(String templateName) throws IOException{
		return CONFIGURATION.getTemplate(templateName);
	}
	
	// 	清除缓存
	public static void clearCache() {
        CONFIGURATION.clearTemplateCache();
    }
	
}
